Skip to content

build(deps): bump minimatch and just-bash - #308

Merged
aron-cf merged 3 commits into
mainfrom
dependabot/npm_and_yarn/multi-e00ccdd3d9
Nov 11, 2026
Merged

aron-cf merged 3 commits into
mainfrom
dependabot/npm_and_yarn/multi-e00ccdd3d9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Removes minimatch. It's no longer used after updating ancestor dependency just-bash. These dependencies need to be updated together.

Removes minimatch

Updates just-bash from 3.2.0 to 3.6.0

Release notes

Sourced from just-bash's releases.

just-bash@3.6.0

Minor Changes

  • #377 cc35fab Thanks @​trieloff! - Add the mktemp command. It creates a unique temporary file (mode 0600) or directory (-d, mode 0700) and prints its path, supporting -p/--tmpdir[=DIR], -t, -u/--dry-run, -q/--quiet, --suffix=SUFF, GNU-style TEMPLATE expansion, --help and --version. The default directory is $TMPDIR when set and non-empty, otherwise /tmp, so sandboxed embedders that point TMPDIR at a writable directory get a usable path. Random name characters come from the platform CSPRNG (crypto.getRandomValues), and existing paths are never returned.

    Adds an optional createExclusive(path, { mode, directory }) method to IFileSystem, which creates an entry only if the name is free and applies the mode at creation time rather than via a follow-up chmod. All built-in filesystems implement it. The member is optional, so external IFileSystem implementations remain source compatible; mktemp reports that such a filesystem cannot create atomically rather than substituting a non-atomic sequence. The accompanying CreateExclusiveOptions type is exported alongside the existing MkdirOptions/RmOptions.

  • #409 5d19cc3 Thanks @​trieloff! - Add the yes command. yes [STRING]... repeats a line built from its operands (y when there are none), so yes | head -3 and yes | some-prompt work instead of failing with exit 127. Because pipeline stages here run to completion rather than streaming, the stream is finite: it ends after executionLimits.maxLoopIterations lines, or earlier if the repeated line would exceed the output size limit.

Patch Changes

  • #445 7313062 Thanks @​trieloff! - interpreter: preserve complete associative-array values in declare -A compound assignments

    Quoted values containing whitespace were reconstructed without quoting before the declare builtin parsed them, so every value was silently truncated at its first space. Associative-array declarations now retain whitespace and other quoted content.

  • #346 52a5617 Thanks @​iroiro147! - fs: keep the Buffer-less fromBuffer fallback under the argument limit

    Without Buffer (for example in a Chrome extension service worker), fromBuffer converted base64, binary and latin1 content by spreading 64KB chunks into String.fromCharCode, which can exceed the engine's argument limit and throw RangeError: Maximum call stack size exceeded on a 64KB cat. The fallback now converts in 8KB chunks.

  • #443 a36c324 Thanks @​RyanGarber! - Handle accessor descriptors when installing module defense-in-depth proxies on Bun, preserving blocking behavior and original descriptors on teardown.

  • #414 31ac823 Thanks @​mutewinter! - find: report a directory it cannot read and keep going

    A readdir failure inside the traversal threw out of the whole search, so one unreadable directory ended find with no results: exit 1 and find: EACCES: permission denied, scandir '<path>' on its own, and exit 0 with nothing at all once piped through head with stderr silenced. Every macOS home directory holds such a directory (.Trash, several under Library), so a recursive find over a mounted home directory never returned anything.

    GNU find names the directory on stderr, continues with everything else, and exits 1 at the end. It now does the same here. The message is find: <path>: Permission denied, with the phrase taken from the errno alone, so nothing from the underlying error's text reaches the output. A failure that is not one of the errnos a directory read can produce (a cancellation, an execution limit, a filesystem policy refusal) still ends the search as before.

    Messages are emitted in traversal order beside the node's own output, whatever order the parallel batch settled in, and a failed read still counts toward the trace's readdirCalls and readdirTime.

  • #384 e0cca16 Thanks @​taoche! - Match real jq behavior for to_entries on arrays (numeric-key entries instead of null) and tonumber on empty or whitespace-only strings (error instead of 0).

  • #417 017a911 Thanks @​trieloff! - interpreter: give a loop left via break/continue status 0 instead of the last command's

    break and continue are builtins that return 0, and they are the last command a loop body runs. A loop exited through them reported the status of whatever ran before the break instead:

    while :; do false; break; done; echo $?            # was 1, bash says 0
    for i in 1; do false; break; done; echo $?         # was 1, bash says 0
    for i in 1 2; do false; continue; done; echo $?    # was 1, bash says 0

    All four loop forms were affected — for, C-style for, while, until — as was a break/continue in a while condition and a multi-level break 2 unwinding through an enclosing loop.

    The stale status is invisible until something reads $?, and under set -e the phantom failing loop ends the script with no output and no diagnostic:

    set -euo pipefail
    while :; do
      [ 5 -eq 0 ] && break     # correctly exempt from errexit as the left operand of &&
      break

... (truncated)

Commits
  • 7537a26 chore: release (#504)
  • 632090a chore(deps): update undici and smol-toml to patched versions (#509)
  • e0cca16 Fix jq to_entries on arrays and tonumber on empty strings (#384)
  • d91dce8 refactor(expansion): share pattern-removal compilation (#518)
  • 2d79d8b refactor(fs): simplify mount storage and routing (#517)
  • e9bc741 chore(network): remove unused request-owned DNS transport (#516)
  • f77efbd chore: make CONTRIBUTING.md the source of truth for commands and labels (#511)
  • d959d9f fix(curl): support request data from stdin (#411)
  • 9503e06 fix(expansion): assign array-valued parameter defaults (#519)
  • 701f8e5 fix(expansion): reject default assignment to positional parameters (#520)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Nov 5, 2026
@changeset-bot

changeset-bot Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9f051e6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@cloudflare/computer Patch
@cloudflare/dofs Patch
@cloudflare/computer-rpc Patch
@cloudflare/computerd Patch
@cloudflare/remote-exec Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

"esbuild": "^0.28.1",
"isomorphic-git": "^1.38.3",
"just-bash": "^3.0.1",
"just-bash": "^3.6.0",

@devin-ai-integration devin-ai-integration Bot Nov 5, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Worker shell cannot run mktemp

Running the new mktemp command fails even with a writable temporary directory. WorkspaceFsAdapter lacks the createExclusive method that mktemp requires.

Learn more

The updated just-bash provides mktemp, which requires an atomic createExclusive operation from its filesystem. ShellWorker supplies WorkspaceFsAdapter, which does not implement that operation. A writable directory alone cannot make the command work because just-bash does not substitute a non-atomic create. Other shell commands can still use the workspace.

Example: Create /tmp in a workspace and run mktemp -p /tmp through the Worker shell. Instead of returning a path and creating the file, the command fails because the adapter cannot create the entry exclusively.

Recommended fix: Add an atomic create-exclusive operation to the Workspace filesystem and expose it through WorkspaceFsAdapter.createExclusive, preserving file/directory mode and existing-path semantics. Test mktemp through the Worker shell against a writable temporary directory.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread packages/computer/package.json Resolved
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

16 checks failed on this update: dofs, computer, computerd, rpc, and the example/* checks (artifacts, assets, codemode, container, container-legacy, mcp, pi-ai, tanstack-ai, think, think-compare-runtimes, tutorial, worker-shell).

  • Each reports only the annotation "Process completed with exit code 1.", with no further detail.
  • The latest commit on main (9f70253) has no comparable test runs, only CodeQL success, so I can't tell whether main passes these checks. A maintainer needs to look at the logs to see whether the just-bash bump caused the failures.

@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/multi-e00ccdd3d9 branch from a1fdae5 to b8537cd Compare November 10, 2026 21:14
@github-actions

Copy link
Copy Markdown
Contributor

20 checks failed on this update: dofs, rpc, computer, computerd, remote-exec, and the example/* checks (artifacts, assets, codemode, container, container-legacy, mcp, remote-exec, pi-ai, tanstack-ai, think, think-compare-runtimes, tutorial, worker-shell).

  • Each sampled check reports only the annotation "Process completed with exit code 1.", with no further detail.
  • All of these checks pass on the latest commit of main (deb774f), so the minimatch/just-bash update likely caused the failures.

Removes [minimatch](https://github.com/isaacs/minimatch). It's no longer used after updating ancestor dependency [just-bash](https://github.com/vercel-labs/just-bash). These dependencies need to be updated together.


Removes `minimatch`

Updates `just-bash` from 3.2.0 to 3.6.0
- [Release notes](https://github.com/vercel-labs/just-bash/releases)
- [Commits](https://github.com/vercel-labs/just-bash/compare/just-bash@3.2.0...just-bash@3.6.0)

---
updated-dependencies:
- dependency-name: just-bash
  dependency-version: 3.6.0
  dependency-type: direct:production
- dependency-name: minimatch
  dependency-version:
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/multi-e00ccdd3d9 branch from b8537cd to 4c2b36e Compare November 11, 2026 14:16
just-bash 3.6 imports guarded-fetch when it loads and sends curl's
requests through it. guarded-fetch imports Headers and buildConnector
from undici, which the shell bundle replaces with a stub that has
neither, so the bundle no longer built.

guarded-fetch adds DNS pinning and private-range checks. The Worker
backend runs with denyPrivateRanges off and leaves egress to the
Dynamic Worker's globalOutbound, so those checks change nothing for
it: requests to localhost, private addresses and public hosts reach
the outbound the same way with and without it. Bundled, it would add
about 42 KB to core, which every shell loads whether it has curl or
not. The bundle now turns just-bash's import("guarded-fetch") into
Promise.resolve(null), which is the path just-bash takes in a
browser: plain fetch, through the SecureFetch the entrypoint passes.
The build fails if just-bash stops having that import.

The worker-backend tests gain a shell with an outbound gateway that
echoes each request, and run curl against it, so a request through
the whole path is covered rather than curl's argument check alone.
The bundle test now checks that neither the real undici nor
guarded-fetch is in core or any command group.
@github-actions

Copy link
Copy Markdown
Contributor

18 checks failed on this update: dofs, rpc, computer, computerd, remote-exec, and the example/* checks (artifacts, assets, codemode, container, container-legacy, mcp, remote-exec, pi-ai, tanstack-ai, think, think-compare-runtimes, tutorial, worker-shell).

  • The annotations I read report only "Process completed with exit code 1/100." with no further detail.
  • The same checks also fail on the latest commit of main (c314667), so the just-bash update is not shown to be the cause. A maintainer should look at the logs.

@pkg-pr-new

pkg-pr-new Bot commented Nov 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@cloudflare/computer@308

commit: 9f051e6

@aron-cf
aron-cf merged commit fc8da84 into main Nov 11, 2026
34 of 52 checks passed
@aron-cf
aron-cf deleted the dependabot/npm_and_yarn/multi-e00ccdd3d9 branch November 11, 2026 19:19
@github-actions github-actions Bot mentioned this pull request Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant